package com.thirteen.app.service;

import com.thirteen.app.dto.CreateExamBySearchResponse.PaperCourseSearchDto;
import com.thirteen.app.dto.CreateExamResponse.PaperCourseExamDto;
import com.thirteen.app.entity.Course;

import java.util.List;

public interface
CourseService {

    //    分页查询课程
    List<PaperCourseSearchDto> queryAllCourse(String courseName, Integer offset, Integer limit);

    //    查出该学院下所有课程
    List<PaperCourseExamDto> queryAllCourseByCollegeId(Integer collegeId);

    //    列表查询课程和试卷
    List<PaperCourseExamDto> queryAllCourseAndPaper();
//zql&ar

    /**
     * 通过ID查询单条数据
     * <p>
     * param courseid 主键
     *
     * @return 实例对象
     */

    //根据ID查询课程
    Course queryById(Integer courseId);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */

    //分页查询课程
    List<Course> queryAllByLimit(int offset, int limit, String subject, String academy);

    /**
     * 新增数据
     * <p>
     * aram course 实例对象
     *
     * @return 实例对象
     */
    boolean insert(Course course);

    //列出所有课程
    List<Course> listAll();

    /**
     * 修改数据
     * <p>
     * param cour0se 实例对象
     *
     * @return 实例对象
     */
    boolean update(Course course);

    int getCourseCount(String subject, String academy);

    /**
     * 通过主键删除数据
     *
     * @param courseid 主键
     * @return 是否成功
     */
    boolean deleteById(Integer courseid);
}
